package com.example.demo2.controller;

import com.example.demo2.entity.Content;
import com.example.demo2.entity.Course;
import com.example.demo2.entity.Method;
import com.example.demo2.entity.Target;
import com.example.demo2.service.ContentService;
import com.google.gson.Gson;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.sql.Timestamp;
import java.util.List;

@RestController
@RequestMapping("/msg")
public class ContentController {
    @Autowired
    private ContentService contentService;

    @GetMapping("/getAll") //
    public List getAll(){
        List<Content> list = contentService.findContentAll();
        return list;
    }
    @GetMapping("/getAllJson") //
    public String getAllJson(){
        List<Content> list = contentService.findContentAll();
        Gson gson = new Gson();
        return gson.toJson(list);
    }
    @GetMapping("/getByProCode")
    public String getByProCode(@Param("proCode") Integer proCode){
            List<Content> findByProCode = contentService.findByProCode(proCode);
            Gson gson = new Gson();
              return gson.toJson(findByProCode);
    }
    @GetMapping("/getByProName")
    public String getByProName(@Param("proName") String proName){
            List<Content> findByProName = contentService.findByProName(proName);
            Gson gson = new Gson();
                return gson.toJson(findByProName);
    }
    @RequestMapping("/insertUserLogin")
    public boolean insertUserLogin(@Param("userId") Integer userId, @Param("userName") String userName, @Param("userLoginTime")String userLoginTime){
        return contentService.insertUserLogin(userId,userName,userLoginTime);
    }
    }

//    @GetMapping("/getByName")
//    public String getByName(@Param("courseName") String courseName){
//        Content getByName = contentService.findByName(courseName);
//        Gson gson = new Gson();
//        return gson.toJson(getByName);
//    }
//    @RequestMapping("/updateCourseName")
//    public boolean updateCourseName(@Param("courseId") Integer courseId, @Param("courseContent") String courseContent){
//        return contentService.updateCourseName( courseId, courseContent);
//    }
//    @GetMapping("/findById_content")
//    public String findById_content(@Param("courseId") Integer courseId){
//        List<Content> byId_content = contentService.findById_content(courseId);
//        Gson gson = new Gson();
//        return gson.toJson(byId_content);
//    }
//    @RequestMapping("/updateContent")
//    public boolean updateContent(
//    @Param("courseContent") String courseContent,
//    @Param("contentId") Integer contentId){
//        return contentService.updateContent(contentId,courseContent);
//    }
//    @RequestMapping("/updateTeacherWay")
//    public boolean updateTeacherWay(@Param("contentId") Integer contentId,
//                                    @Param("teacheWay") String teacheWay){
//        return contentService.updateTeacherWay(contentId,teacheWay);
//    }
//    @RequestMapping("/updateLout")
//    public boolean updateLout(@Param("contentId") Integer contentId,
//                                 @Param("lOut") String lOut){
//        return contentService.updateLout(contentId,lOut);
//    }
//    @RequestMapping("/insert_content")
//    public boolean insert_content(@Param("courseId") Integer courseId)
//
//    {
//        return contentService.insert_content(courseId);
//    }
//    @RequestMapping("/delete_content")
//    public boolean delete_content(@Param("contentId") Integer contentId){
//        return contentService.delete_content(contentId);
//    }
//    @GetMapping("/findByCourseId")
//    public String findByCourseId(@Param("courseId") Integer courseId){
//        List<Target> findByCourseId = contentService.findByCourseId(courseId);
//        Gson gson = new Gson();
//        return gson.toJson(findByCourseId);
//    }
//    @GetMapping("/findByUserId")
//    public String findByUserId(@Param("userId") Integer userId){
//        List<Course> findByUserId = contentService.findByUserId(userId);
//        Gson gson = new Gson();
//        return gson.toJson(findByUserId);
//    }
//    @RequestMapping("/updateOwnTarget")
//    public boolean updateOwnTarget(@Param("contentId") Integer contentId,
//                                  @Param("ownTarget") String ownTarget){
//        return contentService.updateOwnTarget(contentId,ownTarget);
//    }
//
//    @GetMapping("/findByCourseName")
//    public String findByCourseName(@Param("userId") Integer userId,
//                                   @Param("courseName") String courseName){
//        List<Course> findByCourseName = contentService.findByCourseName(userId,courseName);
//        Gson gson = new Gson();
//        return gson.toJson(findByCourseName);
//    }
//
//    @GetMapping("/findByCourseId_C")
//    public String findByCourseId_C(@Param("userId") Integer userId,
//                                   @Param("courseId") Integer courseId){
//        List<Course> findByCourseId_C = contentService.findByCourseId_C(userId,courseId);
//        Gson gson = new Gson();
//        return gson.toJson(findByCourseId_C);
//    }
//    @GetMapping("/findByCourseId_D")
//    public String findByCourseId_D(@Param("userId") Integer userId,
//                                   @Param("courseId") Integer courseId){
//        List<Content> findByCourseId_D = contentService.findByCourseId_D(userId,courseId);
//        Gson gson = new Gson();
//        return gson.toJson(findByCourseId_D);
//    }

//用不到
//    @RequestMapping("/insert_content")
//    public boolean insert_content(@Param("courseId") Integer courseId,
//                                  @Param("lOut") String lOut,
//                                  @Param("teacheWay") String teacheWay,
//                                  @Param("courseContent") String courseContent,
//                                  @Param("courseTarget") String courseTarget,
//                                  @Param("contentId") Integer contentId,
//                                  @Param("couseName")String couseName)
//    {
//        return contentService.insert_content( contentId, courseContent, lOut, courseId, courseTarget,teacheWay,couseName);
//    }

